package config

import (
	"fmt"

	"github.com/spf13/viper"
)

var YmlConfig Config
var RedisConf RedisConfig

type Config struct {
	User     string
	Password string
	Host     string
	Port     string
	Db       string
	Dbs      []string
}

type RedisConfig struct {
	Addr     string
	Password string
	Db       int
	Prefix   []string
	Suffix   []string
}

func InitConfig() Config {

	viper.SetConfigFile("./config.yaml") // 指定配置文件路径
	err := viper.ReadInConfig()          // 查找并读取配置文件
	if err != nil {                      // 处理读取配置文件的错误
		panic(fmt.Errorf("Fatal error config file: %s \n", err))
	}

	YmlConfig.User = viper.GetString("default.user")
	YmlConfig.Password = viper.GetString("default.password")
	YmlConfig.Host = viper.GetString("default.host")
	YmlConfig.Port = viper.GetString("default.port")
	YmlConfig.Db = viper.GetString("default.db")
	YmlConfig.Dbs = viper.GetStringSlice("default.dbs")
	return YmlConfig
}

func InitRedisConfig() RedisConfig {

	viper.SetConfigFile("./config.yaml") // 指定配置文件路径
	err := viper.ReadInConfig()          // 查找并读取配置文件
	if err != nil {                      // 处理读取配置文件的错误
		panic(fmt.Errorf("Fatal error config file: %s \n", err))
	}

	RedisConf.Addr = viper.GetString("redis.addr")
	RedisConf.Password = viper.GetString("redis.password")
	RedisConf.Db = viper.GetInt("redis.db")
	RedisConf.Prefix = viper.GetStringSlice("redis.prefix")
	RedisConf.Suffix = viper.GetStringSlice("redis.suffix")
	return RedisConf
}
